﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Red.GameData.Raw
{
    /// <summary>
    /// Base runtime type wrapper for the reflection system
    /// </summary>
    public class ReflectionType
    {
        /// <summary>
        /// Back pointer to the global reflection data (kind of hacky singleton)
        /// </summary>
        public ReflectionData ReflectionData { get; private set; }
        
        /// <summary>
        /// Get name of the type
        /// </summary>
        /// <returns>Name of the reflection type as string</returns>
        public string Name { get; private set; }

        /// <summary>
        /// Get creator comment for this type (user hint)
        /// </summary>
        /// <returns>String with a hint for the user</returns>
        public string Comment { get; set; }

        /// <summary>
        /// Initialization of basic reflection type
        /// </summary>
        /// <param name="parent">Back pointer to the global reflection data</param>
        /// <param name="name">Name of the type</param>
        internal ReflectionType(ReflectionData data, string name)
        {
            ReflectionData = data;
            Name = name;
        }
    }

}
